/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Entities;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author Nas
 */
@Entity
@Table(name = "AFILIADO")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Afiliado.findAll", query = "SELECT a FROM Afiliado a"),
    @NamedQuery(name = "Afiliado.findAllByEstado", query = "SELECT a FROM Afiliado a WHERE a.estado = :estado"),
    
    
    @NamedQuery(name = "Afiliado.findByIdAfiliado", query = "SELECT a FROM Afiliado a WHERE a.idAfiliado = :idAfiliado"),

    @NamedQuery(name = "Afiliado.findByNombreCompleto", query = "SELECT a FROM Afiliado a WHERE a.estado = :estado and lower(a.nombre) like :nombre or lower(a.apellido) like :nombre"),
    
    @NamedQuery(name = "Afiliado.findByNombre", query = "SELECT a FROM Afiliado a WHERE a.nombre = :nombre"),
    @NamedQuery(name = "Afiliado.findByApellido", query = "SELECT a FROM Afiliado a WHERE a.apellido = :apellido"),
    @NamedQuery(name = "Afiliado.findByTelefono", query = "SELECT a FROM Afiliado a WHERE a.telefono = :telefono"),
    @NamedQuery(name = "Afiliado.findByFechaNacimiento", query = "SELECT a FROM Afiliado a WHERE a.fechaNacimiento = :fechaNacimiento"),
    @NamedQuery(name = "Afiliado.findByIdTipDocIdenti", query = "SELECT a FROM Afiliado a WHERE a.idTipDocIdenti = :idTipDocIdenti"),
    @NamedQuery(name = "Afiliado.findByDocIdentidad", query = "SELECT a FROM Afiliado a WHERE a.docIdentidad = :docIdentidad and a.estado = :estado"),
    @NamedQuery(name = "Afiliado.findByDocIdentidadAndNombre", query = "SELECT a FROM Afiliado a WHERE a.estado = :estado and a.docIdentidad = :docIdentidad or lower(a.nombre) like :nombre or lower(a.apellido) like :nombre"),
    @NamedQuery(name = "Afiliado.findByEMail", query = "SELECT a FROM Afiliado a WHERE a.eMail = :eMail"),
    @NamedQuery(name = "Afiliado.findByCreateBy", query = "SELECT a FROM Afiliado a WHERE a.createBy = :createBy"),
    @NamedQuery(name = "Afiliado.findByFechaCreate", query = "SELECT a FROM Afiliado a WHERE a.fechaCreate = :fechaCreate"),
    @NamedQuery(name = "Afiliado.findByModifiedBy", query = "SELECT a FROM Afiliado a WHERE a.modifiedBy = :modifiedBy"),
    @NamedQuery(name = "Afiliado.findByFechaModified", query = "SELECT a FROM Afiliado a WHERE a.fechaModified = :fechaModified"),
    @NamedQuery(name = "Afiliado.findByEstado", query = "SELECT a FROM Afiliado a WHERE a.estado = :estado")})
    public class Afiliado implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "ID_AFILIADO")
    private Integer idAfiliado;
    @Column(name = "NOMBRE")
    private String nombre;
    @Column(name = "APELLIDO")
    private String apellido;
    @Column(name = "TELEFONO")
    private String telefono;
    @Column(name = "FECHA_NACIMIENTO")
    @Temporal(TemporalType.DATE)
    private Date fechaNacimiento;
    @Column(name = "ID_TIP_DOC_IDENTI")
    private String idTipDocIdenti;
    @Column(name = "DOC_IDENTIDAD")
    private String docIdentidad;
    @Column(name = "E_MAIL")
    private String eMail;
    @Column(name = "CREATE_BY")
    private Integer createBy;
    @Column(name = "FECHA_CREATE")
    @Temporal(TemporalType.DATE)
    private Date fechaCreate;
    @Column(name = "MODIFIED_BY")
    private Integer modifiedBy;
    @Column(name = "FECHA_MODIFIED")
    @Temporal(TemporalType.DATE)
    private Date fechaModified;
    @Column(name = "ESTADO")
    private String estado;

    public Afiliado() {
    }

    public Afiliado(Integer idAfiliado) {
        this.idAfiliado = idAfiliado;
    }

    public Integer getIdAfiliado() {
        return idAfiliado;
    }

    public void setIdAfiliado(Integer idAfiliado) {
        this.idAfiliado = idAfiliado;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public Date getFechaNacimiento() {
        return fechaNacimiento;
    }

    public void setFechaNacimiento(Date fechaNacimiento) {
        this.fechaNacimiento = fechaNacimiento;
    }

    public String getIdTipDocIdenti() {
        return idTipDocIdenti;
    }

    public void setIdTipDocIdenti(String idTipDocIdenti) {
        this.idTipDocIdenti = idTipDocIdenti;
    }

    public String getDocIdentidad() {
        return docIdentidad;
    }

    public void setDocIdentidad(String docIdentidad) {
        this.docIdentidad = docIdentidad;
    }

    public String getEMail() {
        return eMail;
    }

    public void setEMail(String eMail) {
        this.eMail = eMail;
    }

    public Integer getCreateBy() {
        return createBy;
    }

    public void setCreateBy(Integer createBy) {
        this.createBy = createBy;
    }

    public Date getFechaCreate() {
        return fechaCreate;
    }

    public void setFechaCreate(Date fechaCreate) {
        this.fechaCreate = fechaCreate;
    }

    public Integer getModifiedBy() {
        return modifiedBy;
    }

    public void setModifiedBy(Integer modifiedBy) {
        this.modifiedBy = modifiedBy;
    }

    public Date getFechaModified() {
        return fechaModified;
    }

    public void setFechaModified(Date fechaModified) {
        this.fechaModified = fechaModified;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idAfiliado != null ? idAfiliado.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Afiliado)) {
            return false;
        }
        Afiliado other = (Afiliado) object;
        if ((this.idAfiliado == null && other.idAfiliado != null) || (this.idAfiliado != null && !this.idAfiliado.equals(other.idAfiliado))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Entities.Afiliado[ idAfiliado=" + idAfiliado + " ]";
    }

    
}
